package com.comeval.logica;

import com.comeval.modelo.Devoluciones;
import com.comeval.persistencia.IDevolucionesDAO;
import java.util.List;
import javax.ejb.EJB;
import javax.ejb.Stateless;

/**
 *
 * @author DianaMarcela
 */
@Stateless
public class LogicaDevoluciones implements LogicaDevolucionesLocal {

    @EJB
    private IDevolucionesDAO devolucionesDAO;

    @Override
    public void registrarDevoluciones(Devoluciones devoluciones) throws Exception {
        if (devoluciones == null) {
            throw new Exception("La devolucion no tiene informacion");
        }
        if (devoluciones.getCodigodevolucion() == null) {
            throw new Exception("El codigo de la devolucion es obligatorio");
        }

        Devoluciones objDevoluciones = devolucionesDAO.consultarPorCodigo(devoluciones.getCodigodevolucion());
        if (objDevoluciones != null) {
            throw new Exception("Este codigo ya tiene una devolucion asociada");
        }
        devolucionesDAO.registrarDevoluciones(devoluciones);
    }

    @Override
    public void modificarDevoluciones(Devoluciones devoluciones) throws Exception {
        if (devoluciones == null) {
            throw new Exception("La devolucion no tiene informacion");
        }
        if (devoluciones.getCodigodevolucion() == null) {
            throw new Exception("El codigo de la devolucion es obligatorio");
        }

        Devoluciones objDevoluciones = devolucionesDAO.consultarPorCodigo(devoluciones.getCodigodevolucion());
        if (objDevoluciones == null) {
            throw new Exception("El codigo de la devolucion a modificar no existe");
        }
        devolucionesDAO.modificarDevoluciones(devoluciones);
    }

    @Override
    public void eliminarDevoluciones(Devoluciones devoluciones) throws Exception {
        Devoluciones objDevoluciones = devolucionesDAO.consultarPorCodigo(devoluciones.getCodigodevolucion());
        if (objDevoluciones == null) {
            throw new Exception("El codigo de la devolucion a eliminar no existe");
        }
        devolucionesDAO.modificarDevoluciones(devoluciones);
    }

    @Override
    public List<Devoluciones> consultarDevoluciones() throws Exception {
        return devolucionesDAO.consultarDevoluciones();
    }

    @Override
    public Devoluciones consultarPorCodigo(Integer codigoDevolucion) throws Exception {
        if (codigoDevolucion == null) {
            throw new Exception("Por favor ingrese un dato valido");
        }
        return devolucionesDAO.consultarPorCodigo(codigoDevolucion);
    }

}
